1. Field of the Invention
The present invention is related generally to a data processing system and in particular to a method and apparatus for managing data. More specifically, the present invention is directed to a computer implemented method, apparatus, and computer usable program code for managing statistical profile data by implementing a set of markers that may be referenced for filtering selected profile samples.
2. Description of the Related Art
Statistical profiles are performance analysis tools that measure the behavior of a data processing system and/or the applications hosted thereon. Generally, statistical profilers measure where the central processing unit is spending its cycles on a function-by-function or task-by-task basis. Techniques used to collect profiles or the set of profile samples include hardware interrupts, code instrumentation, operating system hooks, and performance counters. The output from a statistical profiler is a stream of recorded events, also referred to as a trace or a set of profile samples. The output may also be a statistical summary of the events observed, also referred to as a profile.
System profilers fall into two classes: those that report actual or exact measurements and those that report statistical data. Both methods provide important information and the decision about which type to use will depend on the purpose of the analysis. Notwithstanding this fact, statistical profilers measure how much time the processor spends executing various parts of the software. Profiling tools can be software-based, hardware-based or a combination of hardware and software. Much like a logic analyzer, a profiler can display information such as kernel calls, hardware interrupts, thread states, messages, and scheduling activities. System profilers provide information necessary to reveal bottlenecks, optimize performance, and most importantly, understand what the processor is really doing.
Profilers have some limitations. Some may impact performance or may require special hardware. Others function as post-processors, making it difficult to correlate their results with dynamic loads. Generally, such limitations are minor. The greatest challenge is making sense out of the enormous amount of data that profilers can collect. To address this, most profilers provide automated analysis and sophisticated graphing capabilities that make it possible to visualize events and quickly and easily pinpoint problems.
Statistical profilers work by periodically sampling system data, such as function call stacks, central processing unit registers, or memory addresses and data signals as a means of tracking the path of program execution. Statistical data is required to measure the relative impact of highly repetitive events or activities. An example of this would be the percentage of central processing unit time utilized by a particular task or function.
The data collected by statistical profilers are aggregated in a file log. However, event samples collected over time often include data irrelevant to specific performance issues. Thus, statistical reports generated from such a file log may include unrelated event data that may prevent a user from identifying causes of the performance issues at hand.